﻿@model IEnumerable<Controller2.Models.ViewModels.TipoPessoaViewModel>
@{
    ViewBag.Title = "Consulta de Tipos de Pessoa";
}
@if (false)
{
    <script src="../../Scripts/jquery.js" type="text/javascript"></script>
    <script src="../../Scripts/controller.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery-vsdoc.js" type="text/javascript"></script>
}
@MvcHtmlString.Create(@ViewBag.Pesquisa)
@(Html.Telerik().Grid<Controller2.Models.ViewModels.TipoPessoaViewModel>()
    .Name("grdConsulta")
    .Selectable()
    .ClientEvents(events => events.OnRowSelected("onRowSelected")
                                      .OnLoad("Grid_onLoadVerify"))
    .Columns(c =>
    {
        c.Bound(g => g.ID).Title("Código").Width(60).HtmlAttributes(new { style = "text-align: center;" });
        c.Bound(g => g.Tipo).Title("Tipo de Pessoa");
    })
    .TableHtmlAttributes(new { style = "font-size: 8pt;" })
    .DataBinding(d => d
        .Ajax().Select("AjaxGrid", "TipoPessoa")
    )
    .PrefixUrlParameters(false)
    .Pageable(p => p.Enabled(true)
        .PageSize(40)
        .Position(GridPagerPosition.Both)
        .Style(GridPagerStyles.NextPreviousAndNumeric | GridPagerStyles.PageInput)
        )
    .Sortable()
    .Scrollable(s => s.Height(340))
    .Filterable(f => f.Enabled(false))
    .Groupable(g => g.Enabled(false))
)
@if ((Boolean)ViewBag.IsInRole)
{    
    <div id="botoesConsulta">
        <input type="button" id="Incluir" value="Novo" />
        <input type="button" id="Alterar" value="Alterar" />
        <input type="button" id="Excluir" value="Excluir" />
    </div>
}
<div id="confirmarExclusao" style="display: none;">
    <p>
        Confirmando esta ação, você apagará este registro do banco de dados, não sendo mais
        possível recuperá-lo.
        <br />
        <br />
        Deseja realmente apagar este registro?</p>
</div>
<div id="alerta" style="display: none;">
    Por favor, selecione um regristro!
</div>
<div id="winForm" style="display: none; overflow: hidden;">
</div>
<div id="alertaErro" style="display: none; overflow: hidden;">
</div>
<script type="text/javascript">
    $(function () {
        $('#txtPesquisa').autocomplete({
            source: function (request, response) {
                $.post('@Url.Action("AutoComplete", "TipoPessoa")', { filtro: $('#ComboFiltro').val(), termoPesquisa: request.term }, function (data) {
                    return response(data);
                }, 'json');
            },
            delay: 100,
            minLength: 1
        });
    });

    $('#btnPesquisa').click(function (e) {
        showLoading();
        e.preventDefault();
        pesquisa();
    });

    function pesquisa() {
        var texto = $('#txtPesquisa').val();
        var filtro = $('#ComboFiltro').val();
        var url = '@Url.Action("Pesquisa", "TipoPessoa")';
        $.post(url, { texto: texto, filtro: filtro }, function (result) {
            gridRebind('grdConsulta');
            hideLoading();
        });
    }

    $('#Incluir').click(function (e) {
        e.preventDefault();
        var url = '@Url.Action("Cadastro")/0';
        $('#winForm').load(url);
        formDialog('winForm', 'Inclusão de Tipo de Pessoa', 200, 540);
    });

    $('#Alterar').click(function () {
        if (id === undefined || id === '') {
            alertDialog('alerta', '', 120, 250);
            return false;
        } else {
            alterar(id);
            id = undefined;
        }
    });

    function alterar(id) {
        var url = '@Url.Action("Cadastro")/' + id;
        $('#winForm').empty().load(url);
        formDialog('winForm', 'Alteração de Tipo de Pessoa', 270, 450);
        return false;
    }

    $('#Excluir').click(function () {
        if (id === undefined || id === '') {
            alertDialog('alerta', '', 120, 250)
        } else {
            confirmDialog('confirmarExclusao', 'excluir', '', '', '');
        }
    });

    function excluir() {
        var url = '@Url.Action("Excluir", "TipoPessoa")';
        $.post(url, { id: id }, function (data) {
            if (data.salvo) {
                gridRebind('grdConsulta');
            } else {
                alertError(data.error);
            }
        });
    }

    function closeWindow() {
        $('#winForm').dialog('close');
        gridRebind('grdConsulta');
    }

    function Grid_onLoadVerify(e) {
        var isInRole = '@ViewBag.IsInRole';
        if (isInRole == 'True') {
            Grid_onLoad(e, this);
        }
    }
</script>
